package cn.lqz.bucttrain.service;

import cn.lqz.bucttrain.pojo.dto.TokenUserInfoDTO;
import cn.lqz.bucttrain.pojo.dto.UserLoginDTO;
import cn.lqz.bucttrain.pojo.dto.UserPasswordChangeDTO;

/**
 * 用户接口
 */
public interface AccountService {
    /**
     * 登录
     * @param userLoginDTO
     * @return
     */
    TokenUserInfoDTO login(UserLoginDTO userLoginDTO);
    /**
     * 退出登录
     * @param userId
     * @return
     */
    void logout(Long userId);

    /**
     * 修改密码
     * @param userPasswordChangeDTO
     */
    void changePassword(UserPasswordChangeDTO userPasswordChangeDTO);

    /**
     * 获取短信验证码
     * @param phoneNumber
     */
    void getCheckCode(String phoneNumber);

    /**
     * 校验短信验证码
     * @param phoneNumber
     * @param checkCode
     */
    void submitCheckCode(String phoneNumber, String checkCode);

    /**
     * 忘记密码并修改密码
     * @param phoneNumber
     * @param newPassword
     */
    void forgetAndChangePassword(String phoneNumber, String newPassword);
}
